Extension::MongoDBBulkOperation Method

Syntax

c BulkOperation(C data)

Arguments

data

JSON for the bulk operation

Description

Bulk add/remove/update record operation.

dim mongo as extension::MongoDB = extension::MongoDB::Create("mongodb://localhost:27017","TestDatabase","flowers")

mongo.BulkOperation(<<%json%
{
"insert" : true ,
"documents" : [
    {
        "Id": "00000000",
        "Picture": "=filename_decode(\"Hires\\allium.jpg\")",
        "Imagedate": "07/30/2001",
        "Keywords": "allium white"
    },
    {
        "Id": "00000001",
        "Picture": "=filename_decode(\"Hires\\alyssum purple.jpg\")",
        "Imagedate": "06/05/2002",
        "Keywords": "alyssum purple"
    },
    {
        "Id": "00000002",
        "Picture": "=filename_decode(\"Hires\\anenome.jpg\")",
        "Imagedate": "07/30/2001",
        "Keywords": "anenome white"
    },
    {
        "Id": "00000003",
        "Picture": "=filename_decode(\"Hires\\anenomes.jpg\")",
        "Imagedate": "05/24/2002",
        "Keywords": "anenome white"
    }
]
}
%json%)

Bulk allows a lot of record inserts to be done at once, good for initailly populating collections.

Populate MongoDB from another DataSource

dim cn as sql::Connection
cn.Open("::Name::AADemo-Northwind")

dim tables as c = cn.ListTables()
for each table in tables
	cn.PortableSQLEnabled = .t.	
	if cn.Execute("select * from "+table.value)	 then
		dim rs as sql::ResultSet
		rs = cn.ResultSet
		dim json as  c  = rs.ToJSON()
		dim mongo as extension::MongoDB = extension::MongoDB::Create("mongodb://localhost:27017","Northwinds",table.value)
		mongo.BulkOperation("{ \"insert\" : true , \"documents\" : "+json+" }")		
	end if
next

This example quickly populates mongo from the tables in Northwinds.